#pragma once

#include "Misc/CommonMacros.h"
#include "Containers/Vector.h"


//utf8 string, mainly used for IO
class WHENGINE_API CString8
{
public:
    CString8();

    CString8(const char8_t* InUtf8String);

    CString8(int64_t InNum);

    char* CStr() const;

    char8_t* CStr8() const;

    size_t CStrLength() const;

    TVector<char8_t> GetData() const;

    CString8 operator + (const CString8& Other) const;
    CString8& operator += (const CString8& Other);
    CString8 operator + (const char8_t* InUtf8String) const;
    CString8& operator += (const char8_t* InUtf8String);

    bool operator == (const CString8& Other) const;
protected:
    TVector<char8_t> Data;

};

